'''
    面向对象：
        类：为了将具有共同特征和行为的一组对象抽象定义
        对象：类的实例

        定义类：
        class 类名称():
            函数 : 定义行为
                对象函数:
                    默认参数 self ——> self表示当前对象
                    必须通过对象才可以调用该函数
                类函数:
                    使用装饰器@classmethod修饰函数
                    默认参数cls cls代表当前类
                    使用类 对象都可以调用
                静态函数:
                    使用装饰器@staticmethod修饰函数
                    没有默认参数
                    使用类 对象都可以调用
            属性:定义状态
                对象属性:
                    定义在init函数中 通过self指定
                    在创建对象时必须要指定和init函数参数个数匹配的实参
                    self表示当前对象
                类属性:
                    定义在类的内部 函数外部
                    所有对象共享 对象不能修改类属性
                    可以通过类获取和修改


'''

class Cart():
   #定义类属性
    name = "购物车"
    #对象属性
    def __init__(self,productName,count):
        self.productName = productName
        self.count = count

    def quertCart(self): #对象函数
        print("当前商品为{}，数量为{}".format(self.productName,self.count))

    @classmethod
    def cartCls(cls):
        print("这是类函数")

    @staticmethod
    def staticMethod():
       print("这是静态函数")
if __name__ == '__main__':
    #获取类属性
    print(Cart.name)
    #修改类属性
    Cart.name = "购物袋"
    print(Cart.name)

    # 创建对象
    myCart = Cart("咖啡",10)
    print(myCart.name)
    print(myCart.productName)
    myCart.quertCart()

    # 创建对象
    myCart2 = Cart("茶叶",10)
    print(myCart2.name)
    print(myCart2.productName)
    myCart2.quertCart()

    Cart.cartCls()
    myCart.cartCls()

    Cart.staticMethod()
    Cart.staticMethod()

